草庐IT

C++ ifstream 到 char *

全部标签

c++ - 将char数组转换为单个int?

有人知道如何将char数组转换为单个int吗?charhello[5];hello="12345";intmyNumber=convert_char_to_int(hello);Printf("Mynumberis:%d",myNumber); 最佳答案 有多种方法可以将字符串转换为int。解决方案1:使用旧版C功能intmain(){//charhello[5];//hello="12345";--->Thiswontcompilecharhello[]="12345";Printf("Mynumberis:%d",atoi(he

c++ - 将char数组转换为单个int?

有人知道如何将char数组转换为单个int吗?charhello[5];hello="12345";intmyNumber=convert_char_to_int(hello);Printf("Mynumberis:%d",myNumber); 最佳答案 有多种方法可以将字符串转换为int。解决方案1:使用旧版C功能intmain(){//charhello[5];//hello="12345";--->Thiswontcompilecharhello[]="12345";Printf("Mynumberis:%d",atoi(he

c++ - 从 C `goto` 错误处理范例转换到 C++ 异常处理范例

我是一名学习C++的C程序员。在C中,有一个常见的gotoidiomusedtohandleerrorsandexitcleanlyfromafunction.我读过通过try-catchblock处理异常是面向对象程序中的首选,但我在C++中实现这个范例时遇到了麻烦。以C中的以下函数为例,它使用goto错误处理范例:unsignedfoobar(void){FILE*fp=fopen("blah.txt","r");if(!fp){gotoexit_fopen;}/*theblackboxfunctionperformsvarious*operationson,andotherwis

c++ - 从 C `goto` 错误处理范例转换到 C++ 异常处理范例

我是一名学习C++的C程序员。在C中,有一个常见的gotoidiomusedtohandleerrorsandexitcleanlyfromafunction.我读过通过try-catchblock处理异常是面向对象程序中的首选,但我在C++中实现这个范例时遇到了麻烦。以C中的以下函数为例,它使用goto错误处理范例:unsignedfoobar(void){FILE*fp=fopen("blah.txt","r");if(!fp){gotoexit_fopen;}/*theblackboxfunctionperformsvarious*operationson,andotherwis

c++ - new char[n] 和 new (char[n]) 的区别

newchar[n]和new(char[n])有什么区别吗?我在生成的代码中有第二种情况,g++(4.8.0)给了我ISOC++doesnotsupportvariable-lengtharraytypes[-Wvla]这让我想到这两个是否相同。newchar[n]表示“分配n类型为char的对象。new(char[n])的意思是“分配1个类型为n字符数组的对象”吗?删除第一个很清楚。我应该用delete还是delete[]删除第二个?还有其他我应该注意的区别吗?当软件的其他部分期待第二种情况时,我可以安全地删除括号并将第二种情况转换为第一种情况吗?代码是由第三方软件生成的(并被软件的

c++ - new char[n] 和 new (char[n]) 的区别

newchar[n]和new(char[n])有什么区别吗?我在生成的代码中有第二种情况,g++(4.8.0)给了我ISOC++doesnotsupportvariable-lengtharraytypes[-Wvla]这让我想到这两个是否相同。newchar[n]表示“分配n类型为char的对象。new(char[n])的意思是“分配1个类型为n字符数组的对象”吗?删除第一个很清楚。我应该用delete还是delete[]删除第二个?还有其他我应该注意的区别吗?当软件的其他部分期待第二种情况时,我可以安全地删除括号并将第二种情况转换为第一种情况吗?代码是由第三方软件生成的(并被软件的

c++ - 如何从 C++ 中的 std::ifstream 获取文件路径

我使用std::ifstream打开一个文件。我可以使用相对路径(file.txt)或绝对路径(C:\test\file.txt)打开文件。当我传递一个字符串作为文件名时,我不知道它是相对路径还是绝对路径。谁能告诉我如何在文件成功打开后获取绝对路径std::ifstream?例如:std::ifstreamfile(strFile);//strFileis"file.txt"or"C:\test\file.txt"我想获取文件打开成功后的绝对路径。谢谢, 最佳答案 您不能,std::ifstream不存储此信息。然而,你可以做的是:

c++ - 如何从 C++ 中的 std::ifstream 获取文件路径

我使用std::ifstream打开一个文件。我可以使用相对路径(file.txt)或绝对路径(C:\test\file.txt)打开文件。当我传递一个字符串作为文件名时,我不知道它是相对路径还是绝对路径。谁能告诉我如何在文件成功打开后获取绝对路径std::ifstream?例如:std::ifstreamfile(strFile);//strFileis"file.txt"or"C:\test\file.txt"我想获取文件打开成功后的绝对路径。谢谢, 最佳答案 您不能,std::ifstream不存储此信息。然而,你可以做的是:

带有 u8、char8_t 和 std::string 的 C++20

C++11为我们带来了UTF-8文字的u8前缀,几年前我认为这很酷,并在我的代码中添加了如下内容:std::stringmyString=u8"●";这一切都很好,但问题出现在C++20中,它似乎不再编译,因为u8创建了一个char8_t*,这与只使用char的std::string不兼容。我应该创建一个新的utf8string吗?在C++20世界中,我们有更明确的类型与标准std::string并不真正匹配,这样做的一致和正确的方法是什么? 最佳答案 除了@lubgr的回答,论文char8_tbackwardcompatibili

带有 u8、char8_t 和 std::string 的 C++20

C++11为我们带来了UTF-8文字的u8前缀,几年前我认为这很酷,并在我的代码中添加了如下内容:std::stringmyString=u8"●";这一切都很好,但问题出现在C++20中,它似乎不再编译,因为u8创建了一个char8_t*,这与只使用char的std::string不兼容。我应该创建一个新的utf8string吗?在C++20世界中,我们有更明确的类型与标准std::string并不真正匹配,这样做的一致和正确的方法是什么? 最佳答案 除了@lubgr的回答,论文char8_tbackwardcompatibili